home *** CD-ROM | disk | FTP | other *** search
/ Aminet 12 / Aminet 12 (1996)(GTI - Schatztruhe)[!][Jun 1996].iso / Aminet / dev / lang / Python13.lha / Python-1.3 / README < prev   
Encoding:
Text File  |  1996-04-09  |  12.5 KB  |  310 lines

  1.  
  2.  
  3.                   PYTHON 1.3    Released April 7, 1996.
  4.  
  5.     
  6.                          NOTES ON THE AMIGA PORT.
  7.  
  8.  
  9.            Conversion and Amiga specific code by Irmen de Jong.
  10.               (Original code by Guido van Rossum and others)
  11.  
  12.                     EMAIL:    irmen@cs.vu.nl
  13.                     WWW:    http://www.cs.vu.nl/~irmen/
  14.  
  15.  
  16.  
  17.                    Read the file <DISCL_and_COPYRIGHT>!
  18.  
  19.    It contains the disclaimer for this software, and copyright notices.
  20.  
  21.  
  22.  
  23.  
  24.     Contents:
  25.     ~~~~~~~~~
  26.  
  27.     1. What's new?    
  28.     2. General remarks.
  29.     3. Troubleshooting.
  30.     4. Future.
  31.     5. Modification history.
  32.  
  33.  
  34. +----------------------+
  35. |                      |
  36. |  1. What's new?      |
  37. |                      |
  38. +----------------------+
  39.  
  40. IMPORTANT CHANGES SINCE THE PREVIOUS VERSION: (13-Dec-95)
  41.  
  42. Short:
  43.     - Networking support through AmiTCP (Python also works if
  44.       you do not have AmiTCP, but no networking for you then)
  45.     - New crypt, password and group modules. They only need the
  46.       usergroup.library, not the whole AmiTCP package.
  47.     - Many new builtin modules and library files
  48.     - Changes & improvements in amiga module
  49.     - Changes & improvements in amigapath module
  50.     - Full unix compatible stat module
  51.     - Improved timezone (taken from locale prefs instead of ENV:TZ)
  52.     - Improved environment module
  53.     - Bugfixes
  54.     - Slight speed improvement
  55.     - Multiuser chat server demo source included
  56.     - Installer® utility no longer included. You can find it on your
  57.       orignal installation disks that came with your computer. Copy it
  58.       to your C: directory.
  59.     - Only 20Kb larger!
  60.  
  61. VERY  IMPORTANT: Networking support (through AmiTCP)!
  62. The  python  binary  is  now compiled with AmiTCP support.  The interpreter
  63. still  works  even  if  you  don't have AmiTCP, but the extra functionality
  64. (most  importantly,  the  socket  module)  can't  be  used  without  AmiTCP
  65. (obviously).   Some  extra  functions  already  work  if  you only have the
  66. usergroup.library, and not the full AmiTCP package:  the crypt, pwd and grp
  67. modules  for  instance.  A MultiuserFileSystem-compatible usergroup.library
  68. can  be  found  on Aminet (didn't try it -- beware).  Usergroup.library can
  69. also be found in the demo version of AmiTCP, which is also on Aminet.
  70.  
  71. MANY NEW MODULES!
  72. A  whole  lot of `new' builtin modules are included in this release.  Check
  73. the  module  list  below to see what is offered.  This version implements a
  74. lot  more  functions  than  the  previous  release,  and is only about 20Kb
  75. larger! I even included the math.hypot function.
  76. Also there are more library files because of the new builtin modules.  This
  77. includes a simple http-server, and a simple FTP client.
  78.  
  79. CHANGES IN AMIGA MODULE!
  80. os.environ (that is, amiga.environ) used to contain both global environment
  81. variables  (from ENV:) and local shell variables.  This has been changed; a
  82. new  attribute  os.shellvars  (that  is,  amiga.shellvars) now contains the
  83. local  shell variable dictionary.  This now includes the 'RC' and 'Result2'
  84. variables!   Moreover,  the  amiga.shellaliases dictionary now contains the
  85. aliases defined in the shell!
  86. Also,  the  amiga.pipe  function  has  been removed.  It is useless without
  87. threads. Mind that the amiga.popen function still exists!
  88. Removed  the  dangerous  amiga._exit  function.  You are very stupid if you
  89. used it.
  90.  
  91. CHANGES IN AMIGAPATH MODULE!
  92. os.path.expanduser  (that  is,  amigapath.expanduser) fixed.  Works 100% if
  93. usergroup.library  is  present.   Otherwise, ~user/ expansion doesn't work,
  94. but ~/ does.
  95.  
  96. os.path.split (that is, amigapath.split) CHANGED.
  97. (Suggested by Kent Polk, kent@eaenki.nde.swri.edu)
  98.  
  99. The documentation for this function now becomes:  (taken from the source)
  100.  
  101.   " Split a path in head (everything up to the last '/' or ':') and tail (the
  102.   rest).  If the path ends in '/' or ':', tail will be empty.  If there is no
  103.   '/'  or  ':'  in  the path, head will be empty.  DIFFERENCE WITH posixpath:
  104.   only  ONE  trailing '/' will be stripped from head!  (on the Amiga a double
  105.   slash  means  "parent  dir"!   ) This means that if head ends in a '/', you
  106.   MUST  add  a  '/'  to it when reconstructing the path, or you will lose the
  107.   "parent  dir"  slash.   Functions  that  depend  on  this function are also
  108.   affected!  (basename, dirname) "
  109.  
  110. CHANGED STAT MODULE!
  111. Because  Python  is now compiled with AmiTCP support, we also get the bonus
  112. of  a  more Unix-compatible stat() and lstat().  Therefore, lib/stat.py has
  113. been replaced by the the default stat module.
  114.  
  115. TIMEZONE IMPROVED!
  116. As  another side-effect of linking in AmiTCP stuff, Python now extracts the
  117. timezone information from your current locale preferences.  No need anymore
  118. for a TZ environment var.  (One small problem:  the name of the timezone is
  119. no longer known, and is replaced by '???'.) If the locale prefs couldn't be
  120. read, the timezone information is taken from ENV:TZ, which must be a string
  121. like 'MET-1' (MET, -1 hour from GMT).
  122.  
  123. IMPROVED ENVIRONMENT MODULE!
  124. The environment module now contains the following functions:
  125. putenv        - old. (is setenv("name","value",1))
  126.                Called as putenv("name","value")
  127. putenv2        - new. Implements unix putenv(3)
  128.                Called as putenv2("name=value")
  129. getenv        - new. Implements unix getenv(3)
  130.                Called as value=getenv("name")
  131. setenv        - new. Implements unix setenv(3)
  132.                Called as setenv("name","value",overwrite?)
  133. unsetenv    - new. Implements unix unsetenv(3)
  134.                Called as unsetenv("name")
  135. NOTE: all these operate on GLOBAL environment variables (ENV:) only!
  136. The following three functions are Amiga specific. They operate on "local"
  137. variables (the shell-vars) and not on the global ENV: vars:
  138. setvar        - new. setenv on local var only ('set')
  139.                Called as setvar("name","value",overwrite?)
  140. getvar        - new. getenv on local var only ('get')
  141.                Called as value=getvar("name")
  142. unsetvar    - new. unsetenv on local var only ('unset')
  143.                Called as unsetvar("name")
  144.  
  145. BUGFIXES!
  146. Most  important:   the  environment module contained a reference count bug,
  147. which  caused  python to crash upon exit if you used putenv.  Fixed.  Also,
  148. the  check  for  a ".pyc" file extension was case sensitive, so for example
  149. "test.PYC"  wasn't  recognised  as  a  precompiled program.  Fixed.  I also
  150. fixed  a  "undefined-data-in-socket-address-structure"  bug  in  the socket
  151. module  (Caused  AmiTCP  to behave VERY strange).  Last:  Python can now be
  152. run directly from Workbench, no need for iconx anymore.
  153.  
  154.  
  155. +----------------------+
  156. |                      |
  157. |  2. General remarks  |
  158. |                      |
  159. +----------------------+
  160.  
  161. * All tests in Lib/test ran successfully with my version.
  162.   To try it yourself, type:
  163.   cd Python:lib/test
  164.   //Python
  165.   (now enter `import autotest' at the prompt. Should report 'all tests OK')
  166.  
  167. * To  check  some  command  line  options,  use  the -?  option, or any other
  168.   unrecognised option.
  169.  
  170. * The  default  PYTHONPATH  is  ";Python:lib", thus when looking for modules,
  171.   python first checks the current directory, then Python:lib.  By setting the
  172.   global  environment  variable  PYTHONPATH to f.i.  "WORK:pylib", the module
  173.   search   path   becomes   WORK:pylib,  then  the  current  directory,  then
  174.   Python:lib.
  175.  
  176. * The  `Docs'  directory  contains  2 text files regarding regular expression
  177.   syntax,  and  some  other  documents.   You might want to copy other python
  178.   documentation in here.
  179.  
  180. * The following modules are built in into this release:
  181.     amiga, array, binascii, crypt, environment, grp, imp,
  182.     marshal, math, md5, new, pwd, regex, rotor, select, socket,
  183.     soundex, strop, struct, sys, syslog, time.
  184.   Amiga specific: amiga (amiga version of posix module)
  185.   Needs usergroup.library: crypt, grp, pwd.
  186.   Needs AmiTCP's bsdsocket.library: select, socket, syslog.
  187.   New since previous release (13-dec-95): crypt, grp, md5, pwd, rotor,
  188.     select, socket, soundex, syslog.
  189.  
  190.   Check the python documentation to see what each module offers.
  191.  
  192. * For  a  detailed  description  of the changes I made to the original Python
  193.   sources, read the AMIGA_CHANGES file.
  194.  
  195. * Mail  me  if  you encounter any Amiga specific problems, or if you have any
  196.   Amiga  related  questions  about  Python,  or  just  for fun.  More general
  197.   questions are better asked on the usenet newsgroup comp.lang.python.  A lot
  198.   of   information,   including  an  online  manual,  can  be  obtained  from
  199.   <http://www.python.org/>  or  <http://www.cwi.nl/www.python.org/>  if  your
  200.   site is close to the Netherlands.  Read the FAQ before asking!
  201.  
  202.  
  203. +-----------------------+
  204. |                       |
  205. |  1. Troubleshooting   |
  206. |                       |
  207. +-----------------------+
  208.  
  209. * When  I  try  to  install  Python,  I  get  "Unable  to  open  your tool
  210.   'installer'"!
  211.  
  212.   The  Installer® utility is no longer included in the archive.  You can find
  213.   it  on  your  original  installation disks that came with your computer (or
  214.   copy  it  from somewhere else).  You must copy it to your C:  directory, or
  215.   somewhere else where the Workbench can find it.
  216.  
  217. * When I start python, I get "This program requires a math co-processor"!
  218.  
  219.   You have installed the wrong version. Choose the version with IEEE math.
  220.  
  221. * Python seems so slow!
  222.  
  223.   This  is  because Python is an interpreted language.  Some programs execute
  224.   slow because of this.  Other programs can run fast, because they are written
  225.   better, or make heavy use of the fast built-in (compiled) modules.
  226.  
  227. * I   get   "Couldn't   open   bsdsocket.library"   or   "Couldn't   open
  228.   usergroup.library" errors!
  229.  
  230.   You  are  trying to use functions that need one of these libraries.  AmiTCP
  231.   is required if you want to use all (network) functions.
  232.  
  233. * Python crashes when executing complex (recursive) code!
  234.  
  235.   Your  stack  size  is too low.  Python sets it's stack to 15K if your stack
  236.   size  setting  is  less  than  that.   In some (rare) cases, 15K may not be
  237.   enough.   Increase  the stack size in such cases.  The needed stack depends
  238.   on  the  complexity  of  the  program.  Python was compiled without dynamic
  239.   stack-checking because I didn't want to slow it down.
  240.  
  241.  
  242. IMPORTANT:
  243.   Please  let  me  know if you find an error, encounter problems, or have any
  244.   suggestions!  But, as I do this in my spare time, don't expect miracles...
  245.  
  246.  
  247. +----------------------+
  248. |                      |
  249. |  4. Future           |
  250. |                      |
  251. +----------------------+
  252.  
  253. Currently  I  am  busy  extending  the interpreter with an API to the Amiga
  254. shared  libraries.   In the end this will result in a bunch of modules, one
  255. for  each  library, providing the Amiga Python programmer with an interface
  256. to  the Amiga shared libraries.  Because I ran into some problems regarding
  257. C  structures, C strings and C pointers, and their integration into Python,
  258. the release of all this is delayed some time (unknown).  Sorry.
  259.  
  260. I  intend  to  add support for I-Net 225, another networking package.  This
  261. will result in 2 binaries, one for AmiTCP and one for I-Net 225.
  262.  
  263.  
  264. +---------------------------+
  265. |                           |
  266. |  5. Modification history  |
  267. |                           |
  268. +---------------------------+
  269.  
  270. 10 dec. 1995 - 1st public release.
  271. 13 dec. 1995 - 2nd public release.
  272.         Darn. 1st version was compiled with a wrong version of
  273.         memory pools library (Caused crash/wrong behavior on
  274.         anything less than Kick 3.0) -- FIXED (uses amiga.lib now).
  275.  
  276. 10 jan. 1996 - internal
  277.     * Phew. Added (a lot of) prototypes; the whole thing now compiles
  278.       with register arguments instead of stack arguments!
  279.     * Removed binascii module (who uses this?)
  280.     * Implemented os.popen and os.pipe (though the latter is of very
  281.       little use without fork() or threads).
  282.     * Implementes os.execv using Execute(). A bit of a hack; python only
  283.       quits after the new command finished.
  284. 18 feb. 1996 - internal
  285.     * Got Amiga shared library interface (amigalibs module) to work.
  286.       That is: LVOs can be called. Not very functional yet.
  287. 2 apr. 1996 - internal
  288.     * Added AmiTCP support!
  289.     * Added many builtin modules, including binascii ;)
  290.     * amigapath.py library module (os.path) changed, especially the split
  291.       function and the expanduser function. Check the source for details.
  292.     * Replaced lib/stat.py by original version (Unix-compatible)
  293.     * Fixed typo in 'usage' text ('colon separated'->'semicolon separated')
  294.     * Some bugfixes. Most notably in environment module, and socket module.
  295.     * Enhanced environment module.
  296.     * Removed amiga.pipe (it is useless without threads) and amiga._exit.
  297.       Separated global & local environment dictionaries, and added a
  298.       shell aliases dictionary.
  299.  
  300. 7 apr. 1996 - 3rd public release.
  301.     * Some minor changes. Fixed startup code to work with memory pools,
  302.       also when started from Workbench.
  303.     * Improved Installer® script.
  304.  
  305.  
  306.                     Irmen de Jong
  307.                     (irmen@cs.vu.nl)
  308.                     
  309.  
  310.